#include "mainwindow.h"
#include "ui_mainwindow.h"

#include "mymenubar.h"
#include <QDebug>
#include <QString>
#include <QMessageBox>
#include <QPaintDevice>
#include <QPainter>
#include <QTimer>


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //设置主窗口大小
    this->setFixedSize(320,588);
    //设置图标
    this->setWindowIcon(QPixmap(":/resource/image/Coin0001.png"));
    //设置窗口标题
    this->setWindowTitle("懒羊羊的翻金币大作战");

    //菜单栏创建
    CreateMenuBar();


    //创建关卡窗口
    ChooseLevelScene * chooseScene = new ChooseLevelScene;

    //开始按钮
    MyPushButton * startBtn = new MyPushButton(":/resource/image/MenuSceneStartButton.png");
    startBtn->setParent(this);
    //按钮摆放位置： x坐标的位置为：（窗体宽度/2 - 开始按钮的宽度/2），  y坐标的位置为窗体的高度 * 0.7
    startBtn->move((this->width() * 0.5) - (startBtn->width() * 0.5),this->height() * 0.7);

    //观察关卡窗口是否返回
    connect(chooseScene, &ChooseLevelScene::chooseSceneBack, this, [=](){
        this->setGeometry(chooseScene->geometry());   //保证两个窗口的位置保持一致
        chooseScene->hide();  //隐藏关卡选择窗口
        this->show();         //显示主窗口
    });

    connect(startBtn, &QPushButton::clicked, [=](){
        //显示
        startBtn->zoom1();
        startBtn->zoom2();

        //切换到关卡窗口
        //点完开始按钮，就开始立即切换视觉效果太生硬，所以加延时处理
        QTimer::singleShot(300, this, [=](){   //延时300ms
            chooseScene->setGeometry(this->geometry());   //保证窗口的位置保持一致
            this->hide(); //隐藏开始窗口

            chooseScene->show();  //显示关卡窗口
        });

    });


}



MainWindow::~MainWindow()
{
    delete ui;
}





//设置背景图片
void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap pix;

    pix.load(":/resource/image/PlayLevelSceneBg.png");
    painter.drawPixmap(0, 0, this->width(), this->height(), pix);  //指定背景图宽度和高度为窗体一样

    //标题图标设置
    pix.load(":/resource/image/Title.png");
    pix = pix.scaled(pix.width() * 0.5, pix.height()*0.5);  //缩放图标的宽和高都为为原来的0.5倍
    painter.drawPixmap(10, 30, pix);
}

